// 设置全局基础路径;
axios.defaults.baseURL = 'http://www.itcbc.com:8000';
// // 给所有ajax，设置请求头; - 未来项目中，一定要用的！！！
// // 但是，如果用了上面这句，请求拦截器我们就没法复习了;
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token');

// 利用请求拦截器添加token
axios.interceptors.request.use(function (config) {
    // console.log(config);
    // 如果路径中不包含 /api/ ,那么就不是注册和登录，就添加token认证
    // indexOf() 中 O 大写
    if (config.url.indexOf('/api/') == -1) {
        // 不要把return写到if语句中，不要用对方覆盖掉headers属性;
        config.headers['Authorization'] = localStorage.getItem('token');
    }
    // 返回请求参数
    return config;
}, function (error) {
    // 固定写法
    return Promise.reject(error);
});

// 判断响应状态码，可以用响应拦截器拦截所有ajax请求;
axios.interceptors.response.use(function (response) {
    // 操作响应对象;
    if (response.data.code == 1) { // 判断业务状态码
        // 此处不能添加return，因为每一个拦截器要返回response对象：
        toastr.warning(response.data.message);
    }
    // 返回响应信息 - 无论什么情况，都要返回response
    return response;
}, function (error) {
    // 登录拦截/token失效，在没有登录强行访问index.html的情况下，会出现 身份认证失败
    // console.dir(error.response.data.message);
    //   不能只判断 code 是否 == 1 ，因为等于1的情况太多;
    if (error.response.data.message == '身份认证失败') {
        // // 强制跳转到登录页面
        // location.href = './login.html';
        // token失效也会跳转到登录页; 无效的token自动销毁;
        localStorage.removeItem('token');
        if (location.href.indexOf('index.html') != -1) {
            window.location.href = './login.html'
        } else {
            window.parent.location.href = './login.html'
        }
    } else {
        toastr.error(error.response.data.message)
    }
    // 固定写法
    return Promise.reject(error);
});